/****************************************************************************
 ** $Filename: neuronWTA.hpp
 ** $Header$
 **
 ** $Author: Mark Blanchard
 ** 
 ** $CreateDate: Tue Dec 09 23:42:53 2001
 ** $Date$
 **
 ** $Keywords:
 ** $Description:
 **
 *****************************************************************************/

#ifndef NEURONSOFTWTA_HPP
#define NEURONWSOFTTA_HPP

#include <Common/Item/neuron.hpp>

namespace iqrcommon {

  class ClsNeuronWTA : public ClsNeuron
  {
  public:
    ClsNeuronWTA();
    
    void update();
    void reset();
    void initialize();

    inline double randu() { return rand()/(RAND_MAX+1.0); }
    

  private:	
    // Hide copy constructor.
    ClsNeuronWTA(const ClsNeuronWTA &);
    
    
    ClsDoubleParameter *pExcGain, *pInhGain;
    ClsDoubleParameter  *pThreshold;
        
    // Pointers to state variables.	
    ClsStateVariable *pVmembrane, *pActivity;	
  };
}

#endif


